The default behaviour of a <linearGradient> if gradientUnits="userSpaceOnUse" is set and x1, x2, y1, y2 are unset differs between browsers.

<svg class="definitions" width="50" height="50">
    <defs>
        <linearGradient gradientUnits="userSpaceOnUse" id="gradient" x1="0" x2="150" y1="0" y2="0">
            <stop offset="0" stop-color="#FF0000"></stop>
            <stop offset="0.5" stop-color="#00FF00"></stop>
            <stop offset="1" stop-color="#0000FF"></stop>
        </linearGradient>
        <linearGradient gradientUnits="userSpaceOnUse" id="gradientDefault">
            <stop offset="0" stop-color="#FF0000"></stop>
            <stop offset="0.5" stop-color="#00FF00"></stop>
            <stop offset="1" stop-color="#0000FF"></stop>
        </linearGradient>
    </defs>
</svg>
<svg width="150" height="100">
    <rect x="0" y="0" width="150" height="100" fill="url(#gradient)"></rect>
</svg>
<svg width="150" height="100">
    <rect x="0" y="0" width="150" height="100" fill="url(#gradientDefault)"></rect>
</svg>